﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 给自己用的理财软件.第一阶段
{
    class 一笔账的第一阶段实现 : 给自己用的理财软件.一笔账
    {
        EventHandler 修改时间;
        EventHandler 修改金额;
        EventHandler 变更出帐对象;
        EventHandler 变更入账对象;

        event EventHandler 一笔账.修改时间
        {
            add { 修改时间 += value; }
            remove { 修改时间 -= value; }
        }

        event EventHandler 一笔账.修改金额
        {
            add { 修改金额 += value; }
            remove { 修改金额 -= value; }
        }

        event EventHandler 一笔账.变更出账对象
        {
            add { 变更出帐对象 += value; }
            remove { 变更出帐对象 -= value; }
        }

        event EventHandler 一笔账.变更入账对象
        {
            add { 变更入账对象 += value; }
            remove { 变更入账对象 -= value; }
        }

        DateTime 消费时间 = DateTime.Now;
        DateTime 一笔账.消费时间
        {
            get
            {

                return 消费时间;
            }
            set
            {
                if (value != 消费时间)
                {
                    //引发相应的事件
                    修改时间(this, null);
                    消费时间 = value;
                }
            }
        }

        int 消费数目 = 0;
        int 一笔账.消费数目
        {
            get
            {
                return 消费数目;
            }
            set
            {
                if (value != 消费数目)
                {
                    修改金额(this, null);
                    消费数目 = value;
                }
            }
        }

        给自己用的理财软件.资产 入账对象 = 项目.当前方案.资产占位符();

        给自己用的理财软件.资产 出账对象 = 项目.当前方案.资产占位符();


        给自己用的理财软件.资产 一笔账.入账对象
        { 
            get
            {
                return 入账对象;
            }
            set
            {
                if (value != 入账对象)
                {
                    变更入账对象(this, null);

                    入账对象 = value;
                }
            }

        }

        给自己用的理财软件.资产 一笔账.出账对象
        {
            get
            {
                
                return 出账对象;
            }
            set
            {
                if (value != 出账对象)
                {
                    变更出帐对象(this, null);
                    入账对象 = value;
                }
            }
        }
    }
}
